package com.bh.ledger.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bh.common.annotation.Dict;
import com.bh.common.annotation.Excel;
import com.bh.common.core.domain.BhtmsBaseEntityNoCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 核销记录主对象 jc_verification_zb
 *
 * @author slx
 * @date 2024-03-12
 */
@TableName("jc_verification_zb")
@ApiModel(value = "核销记录主对象", description = "核销记录主对象")
@EqualsAndHashCode(callSuper = true)
@Data
public class JcVerificationZb extends BhtmsBaseEntityNoCode implements Serializable {

    /** 核销次数 */
    @ApiModelProperty("核销次数")
    @Excel(name = "核销次数")
    private Integer hxCount;

    /** 已核销金额 */
    @ApiModelProperty("已核销金额")
    @Excel(name = "已核销金额")
    private BigDecimal hxMoney;

    /** 未核销金额 */
    @ApiModelProperty("未核销金额")
    @Excel(name = "未核销金额")
    private BigDecimal whxMoney;

    /** 核销状态 */
    @ApiModelProperty("核销状态")
    @Excel(name = "核销状态")
    private Integer hxStatus;

    /** 类型 (0：收入，1：成本) */
    @ApiModelProperty("类型 (0：收入，1：成本)")
    @Excel(name = "类型 (0：收入，1：成本)")
    private Integer type;

    /** 台账来源 */
    @ApiModelProperty("台账来源")
    @Excel(name = "台账来源")
    private Long tzSource;

    /** 总税金 */
    @TableField(value = "z_input")
    @ApiModelProperty("总税金")
    @Excel(name = "总税金")
    private BigDecimal zinput;

    /** 总金额 */
    @TableField(value = "z_money")
    @ApiModelProperty("总金额")
    @Excel(name = "总金额")
    private BigDecimal zmoney;

    /** 订单表ID */
    @Dict(dictTable = "jc_order", dictLabel = "code", dictValue = "id", dictAlias = "jcOrderCode")
    @ApiModelProperty("订单表ID")
    @Excel(name = "订单表ID")
    private Long jcOrderId;
    @TableField(exist = false)
    private String jcOrderCode;

    /** 其他费用ID -对应JC_OTHER_FEE */
    @ApiModelProperty("其他费用ID")
    @Excel(name = "其他费用ID")
    private Long jcOtherFeeId;

    /** 运单ID */
    @Dict(dictTable = "jc_shipment", dictLabel = "code", dictValue = "id", dictAlias = "jcShipmentCode")
    @ApiModelProperty("运单ID")
    @Excel(name = "运单ID")
    private Long jcShipmentId;
    @TableField(exist = false)
    private String jcShipmentCode;

    /** 派车单ID */
    @Dict(dictTable = "jc_dispatch", dictLabel = "code", dictValue = "id", dictAlias = "jcDispatchCode")
    @ApiModelProperty("派车单ID")
    @Excel(name = "派车单ID")
    private Long jcDispatchId;
    @TableField(exist = false)
    private String jcDispatchCode;


    /** 组织机构ID */
    @Dict(dictTable = "jc_sys_organization", dictLabel = "name", dictValue = "id", dictAlias = "jcOrganizationName")
    @ApiModelProperty("组织机构ID")
    @Excel(name = "组织机构ID")
    private Long jcOrganizationId;
    @TableField(exist = false)
    private String jcOrganizationName;

    /** 核销记录详情信息 */
    @TableField(exist = false)
    private List<JcVerificationRecord> records;
}
